#ifndef CANDIDATEFACTORY_H
#define CANDIDATEFACTORY_H

#include "Candidate.h"

class CandidateFactory
{
public:
    CandidateFactory();
    ~CandidateFactory();
    virtual std::vector<Candidate*> generateInitialPopulation(int populationSize,int genomeSize);
    virtual std::vector<Candidate*> generateInitialPopulation(int populationSize,int genomeSize,std::vector<Candidate*> seedCandidates);
    virtual std::vector<Candidate*> generateVariation(int populationSize,int genomeSize,Candidate* seedCandidate);

    virtual void resetPopulation(std::vector<Candidate*> population,int genomeSize);
private:
};

#endif // CANDIDATEFACTORY_H
